﻿using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

/// <summary>
/// 商品实体
/// </summary>
[Table("Products")] // 指定数据库表名
public class Product
{
    /// <summary>
    /// 商品ID（主键）
    /// </summary>
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 自增主键
    public int Id { get; set; }

    /// <summary>
    /// 商品名称
    /// </summary>
    [Required(ErrorMessage = "商品名称不能为空")]
    [MaxLength(100, ErrorMessage = "商品名称最多100个字符")]
    public string Name { get; set; }


    /// <summary>
    /// 商品价格
    /// </summary>
    [Required(ErrorMessage = "商品价格不能为空")]
    [Column(TypeName = "decimal(18,2)")] // 数据库字段类型（总长度18，小数位2）
    public decimal Price { get; set; }

    /// <summary>
    /// 库存数量
    /// </summary>
    [Required]
    public int Stock { get; set; } = 0;

    /// <summary>
    /// 所属类别ID（外键）
    /// </summary>
    [Required(ErrorMessage = "商品类别不能为空")]
    public int CategoryId { get; set; }

    /// <summary>
    /// 导航属性：商品所属的类别（多对一关系）
    /// </summary>
    [ForeignKey("CategoryId")] // 指定外键字段
    public virtual Category Category { get; set; }
}
